package com.example.test1.assistant;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

//当AIService由多个组件（大模型，聊天记忆，等）组成的时候，我们就可以称他为
//智能体了
@AiService(wiringMode = AiServiceWiringMode.EXPLICIT,
        chatModel = "qwenChatModel",
        chatMemory = "chatMemory")  //新-指定聊天记忆提供类，默认是使用的自带的内存中创建一个记录区

public interface MemeryAssistant {


    //新增，绑定用户提示词：
    @UserMessage("你是我的好朋友，请用东北话回答问题。 {{it}}")//{{it}}就是调用时传入userMessage，会作为提示词的一部分发给大模型
    String chat(String userMessage);

    //如果有两个或两个以上的参数，我们必须要用@V绑定参数名，否则会报错：
    @UserMessage("你是我的好朋友，请用东北话回答问题。 {{message}}")//{{message}}就是调用时传入userMessage，会作为提示词的一部分发给大模型
    String chat(@MemoryId int memoryId, @V("message") String userMessage);
}
